package datos;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import conexion.Conexion;

public class AccionesMarca {

	public static ArrayList<Marca> getAll(){
		ArrayList<Marca> marcas=new ArrayList<Marca>();
		try {
			Statement stm=Conexion.conectar().createStatement();
			ResultSet rs=stm.executeQuery("select * from marca");
			while (rs.next()){
				Marca m=new Marca(rs.getInt("idMarca"), rs.getString("nombreMarca"), rs.getInt("idProveedor"));
				marcas.add(m);
			}
			stm.close();
			Conexion.desconectar();
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return marcas;
	}
	
	public static void addMarca(Marca m){
		try{
			Statement stm=Conexion.conectar().createStatement();
			String nombre=m.getNombre();
			int idProveedor=m.getIdProveedor();
			//System.out.println(nombre);
			stm.executeUpdate("insert into marca (nombreMarca, idProveedor) values('"+nombre+"',"+idProveedor+")");
			stm.close();
			Conexion.desconectar();
		}catch (SQLException e){
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public static boolean existeMarca(Marca m){
		String nombre=m.getNombre();
		int idProveedor=m.getIdProveedor();
		try {
			Statement stm=Conexion.conectar().createStatement();
			ResultSet rs=stm.executeQuery("select * from marca where nombreMarca='"+nombre+"' and idProveedor="+idProveedor);
			if(rs.next()){
				return true;
			}
			stm.close();
			Conexion.desconectar();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return false;
	}

	public static Marca getMarcaById(int id) {
		Marca marca = null;
		try {
			Statement s = Conexion.conectar().createStatement();
			ResultSet rs = s.executeQuery("select * from marca where idMarca='"+id+"'");
			while(rs.next()){
				int idMarca = rs.getInt("idMarca");
				String nombre = rs.getString("nombreMarca");
				int idProveedor= rs.getInt("idProveedor");
				marca = new Marca(idMarca, nombre,idProveedor);
			}
			//s.close();
			//Conexion.desconectar();
			
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
		
		return marca;
	}
	
	public static Marca getMarcaByNombre(String nombreMarca) {
		Marca marca = null;
		try {
			Statement s = Conexion.conectar().createStatement();
			ResultSet rs = s.executeQuery("select * from marca where nombreMarca like'%"+nombreMarca+"%'");
			System.out.println("select * from marca where nombreMarca like'%"+nombreMarca+"%'");
			while(rs.next()){
				int idMarca = rs.getInt("idMarca");
				String nombre = rs.getString("nombreMarca");
				int idProveedor= rs.getInt("idProveedor");
				marca = new Marca(idMarca, nombre, idProveedor);
			}
			//s.close();
			//Conexion.desconectar();
			
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}	
		
		return marca;
	}
	
	public static ArrayList<Marca> getMarcaByProveedor(int idProveedor){
		Marca marca=null;
		ArrayList<Marca> marcas=new ArrayList<Marca>();
		try{
			Statement stm=Conexion.conectar().createStatement();
			ResultSet rs=stm.executeQuery("select * from marca where idProveedor="+idProveedor);
			while (rs.next()){
				int idMarca = rs.getInt("idMarca");
				String nombre = rs.getString("nombreMarca");
				marca = new Marca(idMarca, nombre, idProveedor);
				marcas.add(marca);
			}
		}catch(Exception e){
			e.printStackTrace();
		}
		return marcas;
	}
	
	public static void deleteMarcaByProveedor(int idProveedor){
		try{
			Statement stm=Conexion.conectar().createStatement();
			stm.executeUpdate("delete from marca where idProveedor="+idProveedor);
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	
	public static void updateProveedorMarca(Marca m){
		int idProveedor=m.getIdProveedor();
		String nombreMarca=m.getNombre();
		int idMarca=m.getIdMarca();
		try{
			Statement stm=Conexion.conectar().createStatement();
			stm.executeUpdate("update marca set idProveedor="+idProveedor+", nombreMarca='"+nombreMarca+"' where idMarca="+idMarca);
		}catch(Exception e){
			e.printStackTrace();
		}
	}
}
